// cTablero

// public static var DEBUG_TABLERO:Boolean 								->		Debug
// private var m_pFileCasillasXML:XML 									->		XML con la informacion del archivo para luego separarla con m_vListaCasillas
// private var m_vListaCasillas:Array									->		Array con la informacion de cada casilla	del tablero
// private var m_myJuego:cJuego											->		referencia a juego	

// public function cTablero(_j:cJuego) 									->		constructor
// private function Init():void											->		inicializacion de variables miembro
// public function Load(_fileXML:String):void							->		carga de archivo xml
// public function LoadComplete(_myXML:XML, _isLast:Boolean):void		->		aviso cuando esta la carga completa	
// public function GeneraTablero(_myXML:XML):void 						->		crea el tablero
// public function GeneraTableroLogico(_myXML:XML):Boolean				->		crea el tablero
// public function GetVectorTablero():Array								->		obtiene las casillas del tablero



package game.juego  
{
	import flash.display.InteractiveObject;
	import game.Main;
	import game.IXMLLoadable;
	import utils.LoadFiles;
	/**
	 * ...
	 * @author miquel
	 */
	public class cTablero implements IXMLLoadable
	{
		public static var DEBUG_TABLERO:Boolean 	= true;

//		private var m_pFileCasillasXML:XML 			= null; 	//XML con la informacion del archivo para luego separarla con m_vListaCasillas
		private var m_vListaCasillas:Array			= null;		//Array con la informacion de cada casilla	del tablero
		private var m_myJuego:cJuego				= null;
		
		public function cTablero(_j:cJuego) 
		{
			m_myJuego = _j;
			Init();	
		}
		
		
		private function Init():void
		{
			m_vListaCasillas = new Array();
		}
		
		/**
		 * Load: Ordena obtener los datos del xml del tablero 
		 * @param	_fileXML
		 */
		public function Load(_fileXML:String):void
		{
			if(Main.DEBUG_LOAD_FILES) trace("Load.xml " + _fileXML + " this " + this);
			LoadFiles.CargaArchivoXML(_fileXML, this);
		}
		
		
		/**
		 * LoadComplete: recibe este mensaje cuando se ha cargado el xml y lo utiliza para crear el array de tablero
		 * @param	_myXML
		 */
		public function LoadComplete(_myXML:XML, _isLast:Boolean):void
		{
			if(Main.DEBUG_LOAD_FILES) trace ("LoadComplete " + _myXML);
			GeneraTablero(_myXML);
			if (_isLast)
			{
				trace("cTablero.as::LoadComplete:YA PODEMOS JUGAR!:" );
			}
		}
		
		
		/**
		 * GeneraTablero: crea el tablero con los datos que se recibe del xml
		 * @param	_myXML
		 */
		public function GeneraTablero(_myXML:XML):void 
		{
			if(DEBUG_TABLERO) trace("generando tablero....");
		
			GeneraTableroLogico(_myXML);
			//mcContainerTablero
			
			//cada elemento del xml añadirlo al clip del tablero en las coordenadas dadas
			//for (var i = 0; i <  )
		}
		
		
		public function GeneraTableroLogico(_myXML:XML):Boolean
		{
			if (_myXML != null)
			{
				//composicion de jugadores del juego
				for each(var l_casilla:XML in _myXML.children())
				{
					trace("cTablero.as::GeneraTableroLogico::" + l_casilla.@num + ":" + l_casilla.@nombre);

					var l_pCasilla:Object  = new Object();
					
					if (l_pCasilla != null)
					{
						l_pCasilla._numero = l_casilla.@num;
						l_pCasilla._nombre = l_casilla.@nombre;

						if (m_vListaCasillas != null)
						{
							var l_iLenghtVector:uint = m_vListaCasillas.push(l_pCasilla);
							trace("cTablero.as::GeneraTableroLogico:Añadido:" + l_pCasilla._nombre + " en el vector de casillas del tablero logico. Total=" + l_iLenghtVector);
						}
						else
						{
							trace("cTablero.as::GeneraTableroLogico:Problema añadiendo casilla:" );
							return false;
						}
					}
					else
					{
						trace("cTablero.as::GeneraTableroLogico:Error! No se ha podido crear la casilla:" );
						return false;
					}
				}
				return true;
			}
			else
			{
			
				return false;
			}
			
		}

		public function GetVectorTablero():Array
		{
			return m_vListaCasillas;
		}
		
	}
}